ImageMan 1.0 ============ (c) 1993 by ESP - Extraordinary Software Products EINLEITUNG ========== Die vorliegende Anleitung soll den Umgang mit dem Programm ImageMan erleichtern. Es wird vorausgesetzt, daß der Benutzer mit den grundlegenden Bedienungsvorgängen, die im Umgang mit einem Amiga-Programm notwendig sind, vertraut ist. !!!HINWEIS!!! ImageMan benötigt die Amiga-Betriebssystemversion 2.0 oder höher! Das Programm arbeitet unter einer älteren Systemversion nicht! ImageMan ist ein Bildbearbeitungsprogramm, das Bilder mit bis zu 256 Graustufen in verschiedenster Weise nachbearbeiten kann. Durch eine spezielle Raster-Technik ist es möglich, die Bilder in sehr guter Qualität auf dem normalen Amiga-Bildschirm darstellen zu können. Die Bilder müssen im IFF-ILBM-Format vorliegen und werden auch in diesem Format wieder abgespeichert. Dadurch können die bearbeiteten Bilder in allen anderen Amiga-Programmen weiterverwendet werden (z.B. DTP-Programm). In der derzeitigen Version ist keine Bearbeitung von Farbbildern möglich. Da aber die meisten im DTP-Bereich verwendeten Drucker ohnehin nur die "Farben" Schwarz und Weiß (und über Raster Graustufen) erzeugen können, ist das nur eine kleine Einschränkung. Die Funktionen, die ImageMan für die Bildbearbeitung zur Verfügung stellt, umfassen die Kontrolle über die Graustufenverteilung des Bildes (Histogramm), die Möglichkeit des Glättens bzw. Schärfens des Bildes, Hervorhebung von Kanten, Umrechnen von Schwarz-Weiß-Bildern in Graustufen und einen Bildequalizer, der das Anheben bzw. Abschwächen von Frequenz-Anteilen des Bildes (über Fourier-Transformation) ermöglicht. Damit ist das Hervorheben bestimmter Bildeigenschaften möglich. Eine genauere Erklärung dieser Funktion wird später gegeben. Das Programm benutzt viele Neuerungen des Betriebssystems ab Version 2.0, weshalb es unter älteren Versionen nicht läuft. ImageMan ist beispielsweise ein Application-Window, d.h. Bilder können als Icon in das Programmfenster "hineingezogen" werden. Das Clipboard wird standardmäßig unterstützt (leichter Datentausch mit anderen Programmen). Die Benutzeroberfläche ist so ausgelegt, daß sie auch auf anderen Grafikkarten (wenn sie in das Amiga-Betriebssystem eingebunden sind) läuft. Das Programmfenster mit der Filterliste wird auf dem Workbench-Screen geöffnet. Für die Darstellung des Bildes wird ein eigener Screen mit verschiebbarem / vergrößerbarem Fenster mit Roll-Leisten geöffnet. ImageMan ist kein Zeichenprogramm! In der vorliegenden Version sind keine Zeichenfunktionen enthalten. Dafür sind effiziente Filter für die globale Bearbeitung eines Bildes (bzw. über Clipboard eines Bildteiles) vorhanden. PROGRAMMSTART ============= ImageMan kann entweder von der Shell oder von der Workbench aus gestartet werden. Bei Start von der Shell aus kann als Option der Name eines Bildes angegeben werden. Von der Workbench aus kann das zu ladende Bild über die erweiterte Auswahl (mit Shift-Taste) ausgewählt werden. Ist das Programm bereits geladen, dann kann das Icon eines Bildes auch in das ImageMan-Programmfenster "hineingezogen" werden - ImageMan ist ein Application-Window. Nach dem Start erscheint das ImageMan-Programmfenster: ----------------------------------------- |+| ImageMan |#|#| |---------------------------------------| | | | Image ____________________________ | |[1]Depth **___________ 1 Bit(s) | | Width 0 Height 0 | | | | Filters | | _____________________________________ | | | Smooth | | | | | Median | | | | | Sharpen | | | | | Gradient | | | | | [2] | | | | | BW -> GreyScale | | | | | | | | | | Equalize Histogramm | | | | | Specify Histogramm | | | | | Brightness | | | | | Contrast | | | | | |^| | | | Fourier Bandpass |v| | | ------------------------------------- | | [3] [4] [5] | | Show Start Filter Undo | ----------------------------------------- Bedienungselemente: [1] Graustufenregler - Damit können Sie die maximale Anzahl von Graustufen einstellen. [2] Filterliste - Hier sind alle verfügbaren Filter aufgelistet. Durch Anklicken eines Filter wird es als aktives Filter ausgewählt. Mit der Roll-Leiste neben der Liste kann diese durchgeblättert werden. [3] Show - Das Bild wird in einem Fenster auf einem eigenen Screen angezeigt. [4] Start Filter - Das ausgewählte Filter wird gestartet. Gegebenenfalls erscheint hierauf ein Dialogfenster, in dem die Filterparameter eingestellt werden können. [5] Undo - Die letzte Änderung wird rückgängig gemacht. Mit dem Graustufenregler wird die Anzahl der Bitplanes eingestellt. Die daraus resultierende maximale Graustufenanzahl ergibt sich bekanntlich aus der Formel 2^planes oder entsprechend der folgenden Tabelle: Depth Graustufen 1 2 2 4 3 8 4 16 5 32 6 64 7 128 8 256 In der Informationsbox, in der sich der Graustufenregler befindet, werden auch der Bildname (Image) und die Größe des Bildes in Pixel (Width, Height) angezeigt. In diesen Feldern ist keine Eingabe möglich (durch 3D-Effekt angezeigt - siehe Amiga2.0 - Handbuch). Wenn kein Bild geladen ist, so sind alle Bearbeitungsfunktionen nicht anwählbar ("ghosted"). Laden eines Bildes ------------------ Wie bereits erwähnt gibt es mehrere Möglichkeiten, ein Bild in den Arbeitsspeicher von ImageMan zu laden. Wenn Sie bereits vor Aufruf von ImageMan wissen, welches Bild Sie laden wollen, dann können Sie dieses durch die erweiterte Auswahl bei der Workbench oder durch Angabe des Dateinamens hinter dem Programmnamen gleich laden. Wurde ImageMan bereits gestartet, so gibt es drei Möglichkeiten, wie Sie Ihr Bild laden können: o Durch Aufruf des Menüpunkts Open... aus dem Menü Project (oder Drücken von Amiga O: Es erscheint ein Standard-Dateirequester, in dem Sie das Bild auswählen können. o Durch Aufruf des Menüpunkts Paste aus dem Menü Edit (oder Drücken von Amiga V): Befindet sich ein IFF-ILBM-Bild im Clipboard, dann wird dieses geladen. o Durch "Hineinziehen" des Piktogramms einer IFF-ILBM-Datei in das ImageMan-Programmfenster. Das Bild wird automatisch geladen. Tritt beim Laden ein Fehler auf, dann meldet ImageMan dies mit einem Requester. Hinweis: ImageMan kann keine HAM-Bilder laden. Diese müssen zuerst mit einem anderen Programm konvertiert werden! Gewöhnliche Farbbilder mit bis zu 256 Farben kann ImageMan laden, sie werden auf entsprechende Graustufenbilder umgerechnet. Starten eines Filters --------------------- Um ein Filter zu aktivieren, müssen Sie den Namen des gewünschten Filters in der Filterliste anklicken. Sollte ein Filter nicht sichtbar sein, so benutzen Sie die Roll-Leiste und die Roll-Pfeile, um den Ausschnitt an die entsprechende Stelle zu verschieben. Haben Sie den Filternamen angeklickt, so wird er als ausgewählt markiert. Der aktive Filter wird mit der Schaltfläche Start Filter gestartet. Je nach Filter kann noch ein Dialogfenster mit den Filtereinstellungen erscheinen, bis die Bearbeitung des Bildes aufgenommen wird. Während ein Filter arbeitet, zeigt ein Balken an, wie weit die Bearbeitung fortgeschritten ist. Mit der Schaltfläche Stop kann die Berechnung abgebrochen werden. Anzeigen des Bildes am Schirm ----------------------------- Um das Ergebnis eines Filters am Bildschirm beurteilen zu können, müssen Sie nur die Schaltfläche Show anklicken. ImageMan öffnet hierauf einen neuen Screen mit einem verschiebbaren Fenster, dessen Größe auch beliebig eingestellt werden kann. In diesem Fenster wird das Bild angezeigt. Für die Anzeige werden Dither-Muster verwendet, die eine gute Darstellungsqualität garantieren. So können auch 256 Graustufen-Bilder auf einem normalen Amigabildschirm betrachtet werden. Zusätzlich bietet das Fenster mit den seitlichen Roll-Leisten die Möglichkeit, den angezeigten Bildausschnitt zu verschieben. Dies ist besonders bei großen Bildern (z.B. aus einem Scanner) wichtig. Außerdem kann im Menü Show der Verkleinerungsfaktor (1:1, 1:2, 1:3, 1:4) ausgewählt werden. Mit der Schließ-Schaltfläche im linken oberen Fensterbereich kann die Anzeige des Bildes beendet werden. Die gleiche Funktion erfüllt der Menüpunkt Quit aus dem Menü Show. Während ein Bild mit Show betrachtet wird, ist keine Eingabe im ImageMan-Programmfenster möglich. Da die Schaltflächen aber nicht deaktiviert sind (not "ghosted"), merkt sich ImageMan beispielsweise, wenn Sie auf Start Filter geklickt haben und führt diesen Befehl nach Beendigung der Bildansicht aus. ImageMan ist also etwas "nachtragend". Rückgängigmachen der letzten Änderung ------------------------------------- Mit der Schaltfläche Undo ist es möglich, die letzte Änderung rückgängig zu machen. Sollte ein Filter nicht die gewünschte Wirkung zeigen, so können Sie damit wieder zur ursprünglichen Version des Bildes zurückkehren, ohne das Bild neu laden zu müssen (wie dies bei manchen nahmhaften Bildbearbeitungsprogrammen auf dem Amiga sonst notwendig ist...). Außerdem bietet sich hiermit eine leichte Vergleichsmöglichkeit mit dem ursprünglichen Bild, da der Undo-Befehl selbst wieder zurückgenommen werden kann ("Toggle-Switch"). Durch Hin- und Herwechseln zwischen gefiltertem und ungefiltertem Bild können Sie sich von der Wirkung des Filters überzeugen. Speichern eines geänderten Bildes --------------------------------- Wie beim Laden stellt ImageMan auch beim Speichern des Bildes verschiedene Möglichkeiten zur Verfügung: o Besitzt das Bild bereits einen Namen (Image-Feld nicht leer), dann kann es unter diesem Namen mit dem Befehl Save aus dem Menü Project gespeichert werden. o Hat das Bild noch keinen Namen, dann ist Save nicht verfügbar. Stattdessen muß der Befehl Save As... aus dem Menü Project verwendet werden, der es mit einem Standard-Datei-Requester ermöglicht, einen Namen mit Zugriffspfad anzugeben. o Das Bild kann aber auch mit Copy aus dem Menü Edit (Amiga C) in das Clipboard übertragen werden. Damit ist ein einfacher Datentausch mit anderen Amiga-Programmen möglich. ImageMan verwendet beim Abspeichern immer seine interne Farb- (Graustufen-) Palette. Im Menü Settings kann mit dem Menüpunkt Save Icons? eingestellt werden, ob ein Piktogramm zur Bilddatei erzeugt werden soll und mit dem Menüpunkt Save Compressed? kann die Bildkompression (ByteRun1) ein- bzw. ausgeschaltet werden. Komprimierte Bilder benötigen weniger Speicherplatz, müssen aber beim Laden wieder entkomprimiert werden. Sollte dies ein (wahrscheinlich altes) Programm nicht können, so muß die Kompression ausgeschaltet werden. Der Menüpunkt Virtual Memory? betrifft nur die Fourier-Filter und hat nur bei Verwendung von virtuellem Speicher (über MMU) eine Bedeutung (siehe Fourier-Filter). FUNKTION DER FILTER =================== Die eigentliche Aufgabe von ImageMan besteht im Bearbeiten von Bilder mit Hilfe mathematischer Filter (digital image processing). Die vorhandenen Filter lassen sich in drei Gruppen gliedern: o Matrixfilter o Histogrammfilter o Fourier-Filter Die Gruppen sind in der Filterliste auch optisch voneinander (durch Leerzeilen) getrennt. Ein Zwitterwesen ist das BW->Greyscale Filter, das zum Konvertieren von Schwarz/Weiß-Bildern in Graustufenbilder dienen soll (und eigentlich ein Matrixfilter ist). Die meisten Filter bieten zahlreiche Parameterangaben, die in einem Dialogfeld, das nach Starten des Filters erscheint, eingestellt werden können. Sie können das Dialogfeld immer mit der Schaltfläche Cancel verlassen (z.B. wenn Sie ein Filter irrtümlich aufgerufen haben). Der Undo-Buffer wird dadurch nicht verändert. Mit der Schaltfläche Set Default können Sie ImageMan veranlassen, sich die Einstellungen zu merken. Jedes Filter hat seinen eigenen "Merk-Speicher". Sie können damit entweder nachträglich kontrollieren, welche Einstellungen Sie für eine bestimmte Wirkung verwendet haben, oder oft benutzte Parameter als Standard fixieren. Dieser Default-Wert kann auch abgespeichert werden (Siehe Abschnitt Programmparameter sichern). Haben Sie alle Einstellungen vorgenommen, dann können Sie den Filter mit der Schaltfläche OK starten. Während ein Filter das Bild bearbeitet, wird mit einem Balken angezeigt, wie weit ImageMan bei der Bearbeitung bereits fortgeschritten ist. Falls Sie die Bearbeitung abbrechen wollen, können Sie dies mit der Schaltfläche Stop erreichen. Gerade bei rechenintensiven Filtern (Fouriertransformation) kann es vorkommen, daß ImageMan nicht sofort auf den Stop-Befehl reagiert. Üblicherweise wird aber die Bearbeitung sehr rasch abgebrochen. Der Undo-Buffer wird aber normalerweise zerstört (Undo nicht mehr verfügbar - "ghosted"). Matrixfilter ============ Es folgt nun eine Kurzbeschreibung der Matrixfilter mit empfohlenen Standard-Parametern. Smooth ------ Dient zum Glätten eines Bildes. Damit können sogenannte "Treppchen", die beim Digitalisieren von glatten Helligkeitsverläufen entstehen können, eliminiert werden. Es werden nur so viele Graustufen verwendet, wie mit dem Depth-Regler eingestellt wurden (dies gilt für alle Filter). Deshalb ist es für glatte Verläufe sinnvoll, vor dem Aufruf des Smooth-Filters die maximal mögliche Graustufenanzahl (256 Graustufen - 8 Bits) anzuwählen (Schieber ganz nach rechts ziehen). Parameter: Mit dem Thresh-Schieber (Schwellwert) kann der maximale Unterschied eingestellt werden, den ein Pixel zu den Nachbarpixeln besitzen muß, damit die Glättung aktiviert wird. Damit kann durch eine entsprechende Schieberstellung bis zu einem gewissen Grad verhindert werden, daß gewünschte Kanten ebenso geglättet werden. 0 nichts wird geglättet 100 alles wird geglättet Median ------ Dieses Filter dient zum Entfernen von Bildrauschen. Es hat einen ähnlichen Effekt wie das Smooth-Filter, läßt Kanten aber weitgehend unbeeinflußt. Störende Einzelpunkte werden entfernt. Parameter: keine Sharpen ------- Dient zum Schärfen von (leicht) unscharfen Bildern. Leider kann ImageMan keine verlorengegangene Information wiedererfinden, weshalb das Schärfen von Bildern manchmal nicht die erwünschte Bildqualität ergibt. Schlecht sichtbare Information kann aber durch dieses Filter wieder klarer gemacht werden. Üblicherweise wird durch das Schärfen auch das Bildrauschen angehoben (Sie können versuchen, ob eine Median-Filterung hier Abhilfe schafft). Parameter: Mit dem Thresh-Schieber (Schwellwert) kann der minimale Unterschied eingestellt werden, den ein Pixel zu den Nachbarpixeln besitzen muß, damit die Schärfung aktiviert wird. Damit kann verhindert werden, daß auch kleine Bildhelligkeitsschwankungen verstärkt werden und somit das Bildrauschen unverhältnismäßig groß wird. 0 alles wird geschärft (Unterschied zu Smooth!) 100 nichts wird geschärft Gradient -------- Mit dem Gradient-Filter können die Kanten in einem Bild detektiert bzw. verstärkt werden. Ohne aktiven Schwellwert (siehe unten) bleiben nur die Kanten des Bildes nach der Filterung erhalten. Mit dem Cycle-Gadget kann eingestellt werden, ob die Kanten in horizontaler und vertikaler Richtung (Normal Gradient), nur in horizontaler Richtung (Gradient x) oder nur in vertikaler Richtung (Gradient y) berücksichtigt werden. Diese Art von Filter wird auch oft Sobel-Filter, Roberts-Filter oder generell Edge-Detection-Filter genannt. Parameter: Mit dem Cycle-Gadget kann die Gradientenart eingestellt werden: normal Gradient sowohl horizontale als auch vertikale Kanten Gradient x nur horizontale Kanten Gradient y nur vertikale Kanten Mit dem Schieber Thresh kann der Schwellwert angegeben werden, ab dem der Gradientenoperator aktiviert werden soll. So können sanfte Helligkeitsverläufe vom Gradientenfilter verschont bleiben, während die Kanten bearbeitet werden. Der eingestellte Schwellwert wird allerdings nur berücksichtigt, wenn die Schaltfläche Use Thr. aktiviert wurde (Haken sichtbar). Ist dies nicht der Fall, wird der Gradient ohne Rücksicht auf Verluste berechnet. BW -> Greyscale --------------- Mit diesem Filter kann ein "gedithertes" Schwarz/Weiß-Bild in ein "echtes" Graustufenbild umgerechnet werden, damit es mit den ImageMan-Filtern weiterbearbeitet werden kann. Auch hier gilt wieder der Grundsatz, daß ImageMan keine verloren gegangene Information wiedererfinden kann. Das Filter ist aber so ausgelegt, daß es Einzelpunkte und dünne Linien nicht vollständig vernichtet, sonst aber Dither-Muster nach Möglichkeit in entsprechende Graustufen umwandelt. Man kann hier keine Wunder erwarten, aber meist sind die Ergebnisse ganz brauchbar. Das Filter ist nur dann verwendbar, wenn ein Schwarz/Weiß-Bild (Depth 1 Bit) geladen wurde. Wollen Sie ein Bild mit mehr Bitplanes umwandeln, dann müssen Sie die unnötigen Bitplanes zuerst mit dem Graustufenregler vernichten (Schieber ganz nach links), da sich das Filter sonst nicht starten läßt. Parameter: Mit dem Schieber New Bits können Sie die gewünschte Anzahl von Bitplanes wählen, die bei der Konvertierung verwendet werden sollen (siehe Tabelle auf Seite 3). Mehr als 4 Bitplanes sind aber meist nicht sinnvoll, da sich durch eine höhere Anzahl das Ergebnis kaum mehr ändert. Histogrammfilter ================ Unter einem Histogramm versteht man die Bildhelligkeitsverteilung, also wieviel Schwarz, wieviel Dunkelgrau, wieviel Mittelgrau, wieviel Hellgrau, wieviel Weiß ... enthält das Bild. Mit den Histogrammfiltern haben Sie ein mächtiges Werkzeug zur Bearbeitung der Helligkeit und des Kontrastes eines Bildes. Eine angenehme Eigenschaft dieser Filter ist die hohe Arbeitsgeschwindigkeit. Mit dem (fast) einzigartigem Curve-Gadget (siehe später) ist es sehr einfach, die gewünschte Helligkeitsverteilung interaktiv anzugeben. Damit ist gegenüber einem System, das nur einen Helligkeits- und einen Kontrastregler bietet, eine einfachere Manipulation der Graustufenverteilung möglich. Equalize Histogram ------------------ Dieses Filter versucht, das Bild so zu bearbeiten, daß möglichst alle Graustufen gleich häufig vorkommen. Das kann bei kontrastarmen Bildern oft zu einem sehr guten Ergebnis führen. Kontrastreiche Bilder werden dadurch aber schlechter. Specify Histogram ----------------- Mit diesem Filter können Sie das gewünschte Histogramm einfach auf dem Bildschirm zeichnen. Dazu wurde ein eigenes Gadget, das sogenannte Curve-Gadget entwickelt: ------------------------------------- | Specify Histogram |#| |-----------------------------------| | | | Mode Curve | | o Add --------------------- | | * Move | | | | o Del | | | | | o---------------o | | | | | | | Clear | | | | --------------------- | | | | OK Set Default Cancel | ------------------------------------- Im Curve-Feld kann (ähnlich wie bei einem Vektorzeichenprogramm) mit Kontrollpunkten eine Kurve eingestellt werden. Links neben dem Curve-Feld befinden sich drei Auswahlschaltflächen für den Bearbeitungsmodus: Add: Kontrollpunkt hinzufügen Move: Kontrollpunkt(e) bewegen Del: Kontrollpunkt löschen Mit der Schaltfläche Clear kann die eingestellte Kurve gelöscht und durch eine horizontale Gerade (alle Graustufen gleich verteilt = Equalize Histogram) ersetzt werden. Im Move-Modus können mehrere Kontrollpunkte bewegt werden, indem Sie den ersten Kontrollpunkt anklicken, dann die Umschalttaste (Shift-Taste) drücken und bei gedrückt gehaltener Taste den letzten zu bewegenden Kontrollpunkt anklicken. Ziehen Sie nun die gewählten Kontrollpunkte an die gewünschte Stelle. Es stehen maximal 16 Kontrollpunkte zur Verfügung. Die Kurve im Curve-Feld besitzt folgende Bedeutung: Sie stellt das gewünschte Histogramm dar, das das Bild nach der Bearbeitung besitzen soll. Die Eingabe erfolgt also nicht relativ zum aktuellen Histogramm! Links im Curve-Feld befinden sich die dunklen Graustufen (ganz links = schwarz). Rechts befinden sich die hellen Graustufen (ganz rechts = weiß) Verläuft die Kurve unten im Curve-Feld, dann kommen die Graustufen in diesem Bereich seltener vor (werden unterdrückt). Verläuft die Kurve oben im Curve-Feld, dann kommen die Graustufen in diesem Bereich häufig vor (werden verstärkt). Das folgende Bild soll die Funktion des Curve-Feldes veranschaulichen: ------------------------------------ | Curve | Soll oft | | vorkommen | o--o | | / \ | | o \ o | | \ / \ | | o o o------o | | \ / | | o------o | Soll wenig | | vorkommen ------------------------------------ dunkel hell Das Specify Histogram Filter kann verwendet werden, um die Helligkeit und den Kontrast des Bildes zu verändern. Dazu muß man aber manchmal etwas experimentieren. Deshalb werden nun verschiedene Histogramme mit ihrer (ungefähren) Wirkung angeführt. ------------------------------------ Dieses Histrogramm besitzt | | die gleiche Funktion wie das | | Equalize-Histrogramm-Filter. | | Alle Graustufen kommen danach | | im Bild gleich oft vor. Bei | o------------------------------o | kontrastschwachen Bildern | | kann dies zu einem guten Er- | | gebnis führen, bei kontrast- | | starken Bildern eher nicht. | | | | ------------------------------------ ------------------------------------ Dieses Histogramm verstärkt | | den Kontrast eines Bildes. | o o | Die mittleren Graustufen wer- | \ / | den unterdrückt, die Hell/ | --- --- | Dunkel-Unterschiede ver- | \ / | stärkt. Der tiefste Punkt | --- --- | muß nicht unbedingt in der | \ / | Mitte der Graustufenver- | --- --- | teilung liegen. | \ / | | o | ------------------------------------ ------------------------------------ Dieses Histogramm entspricht | -o- | etwa einer natürlichen | / \ | Helligkeitsverteilung. | o- -o | kommen keine extremen Hellig- | / \ | keitswerte vor. Der Kontrast | / \ | des Bildes wird dadurch mö- | o o | glicherweise verringert. Die | / \ | Lage des Maximums bestimmt | / \ | die Gesamthelligkeit. | o----o- -o---o | | | ------------------------------------ ------------------------------------ Histogramme dieser Art können | | bei üblichen Bildern oft gute | o o-----o | Ergebnisse erzielen. Sowohl | -- -- \ | sehr dunkle, als auch helle | \ / \ | Bildanteile sind vorhanden, | -- -- o | dazwischen werden aber ge- | \ / \ | wisse Helligkeitsstufen | -- -- \ | unterdrückt. | o o | | | | | ------------------------------------ Die angegebene Wirkung muß nicht für jedes Bild zutreffen. Da das Histogramm-Filter aber sehr schnell arbeitet, können mehrere Versuche rasch durchgeführt werden. Benutzen Sie gegebenenfalls die Set Default Schaltfläche, um die eingegebene Kurve für den nächsten Versuch aufzuheben. Dann können Sie diese entsprechend abändern. Wenn Sie das nicht tun, dann wird beim nächsten Start des Filters wieder die mit Save Settings abgespeicherte Default-Kurve angezeigt, was ein Abändern der vorher verwendeten Kurve unmöglich macht (siehe Abschnitt Programmparameter sichern). Versuchen Sie, die Histogramme so einfach als möglich zu halten, da komplizierte Kurven meist kein sinnvolles Ergebnis liefern. Wollen Sie bestimmte Graustufen aus dem Bild wegnehmen, dann sollte das Histogramm an der entsprechenden Stelle ein Minimum aufweisen. Der Umgang mit diesem Filter erfordert etwas Erfahrung, es stellt aber ein mächtiges Werkzeug für die Bearbeitung der Graustufenverteilung dar. Hinweis: Um bessere Ergebnisse zu erzielen, sollten Sie vor dem Start eines Histogrammfilters die Anzahl der Bitplanes auf 8 (256 Graustufen) stellen. ImageMan hat dann mehr Graustufen zur Verfügung und kann die Bearbeitung exakter durchführen. Nachdem Sie den gewünschten Effekt erreicht haben, können Sie die Anzahl der Bitplanes wieder auf den ursprünglichen Wert zurückstellen. Dabei verlieren Sie zwar verschiedene Schattierungen, das Ergebnis ist aber besser als bei der direkten Bearbeitung mit der usprünglichen Anzahl von Bitplanes. (Dieser Hinweis gilt eigentlich für alle Filter). Brightness ---------- Mit diesem Filter können Sie die Gesamthelligkeit eines Bildes sehr leicht verändern. Der Kontrast des Bildes wird dabei nicht verändert. Parameter: Mit dem Schieber Brightn. können Sie angeben, ob das Bild heller (positiver Wert) oder dunkler (negativer Wert) werden soll. Ein kleiner Wert (nahe 0) verändert das Bild nur wenig, ein hoher Wert (nahe 100) bewirkt eine starke Änderung. Günstig sind Werte von ca. +/-10. Contrast -------- Falls Sie den Kontrast eines Bildes ändern wollen, ohne das Specify Histogram Filter zu benutzen, können Sie diesen Filter verwenden. Der Kontrast kann dabei vergrößert oder verkleinert werden. Parameter: Mit dem Schieber Contr. können Sie angeben, ob der Kontrast verstärkt (positiver Wert) oder verringert (negativer Wert) werden soll. Ein kleiner Wert (nahe 0) verändert das Bild nur wenig, ein hoher Wert (nahe 100) bewirkt eine starke Änderung. Das Contrast-Filter arbeitet sehr empfindlich. Daher sind nur geringe Werte empfehlenswert (etwa bis zu +/-10). Fourier-Filter ============== Mit den Fourier-Filtern stellt Ihnen ImageMan einen Bild-Equalizer zur Verfügung. Ähnlich wie bei einem Equalizer einer Stereo-Anlage können Sie bestimmte Eigenschaften des Bildes verstärken oder abschwächen. Bei Klängen ist bekannt, daß der Ton eines bestimmten Musikinstruments aus verschiedenen Frequenzen besteht (Grundton, Obertöne, etc.). Die Klänge einzelner Musikinstrumente vereinigen sich zu einem Musikstück, in dem dann sehr viele verschiedene Frequenzen vorkommen. Bei einer Stereoanlage können Sie üblicherweise mit einem Höhen- und einem Tiefenregler den Klang beeinflussen, indem Sie bestimmte Frequenzbereiche verstärken oder abschwächen. Damit erreichen Sie, daß der Klang beispielsweise dumpfer oder heller wird. Auch Bilder kann man aus Frequenzen zusammensetzen. Das mathematische Konzept der Fouriertransformation ermöglicht dies in ähnlicher Weise wie bei der Musik. Hohe Frequenzen entsprechen dabei scharfen Kanten im Bild. Niedrige Frequenzen entsprechen hingegen langsamen Helligkeitsschwankungen. Mit den Fourier-Filtern können Sie nun wie bei der Stereoanlage verschiedene Frequenzen abschwächen oder verstärken. Damit können Sie ein Bild schärfen, glätten, die Helligkeit verändern oder Traumeffekte erreichen. Die Fourier-Filter arbeiten im Gegensatz zu den Matrixfiltern gleichmäßig in allen Richtungen und können sanftere oder auch ausgeprägtere Filterungen im Vergleich zu Matrixfiltern bewirken. Der Nachteil der Fourier-Filter ist der hohe Rechen- und Speicherplatzaufwand. Für die Fouriertransformation eines Bildes mit 512x512 Pixeln Größe wird ein temporärer Zwischenspeicher von etwa 2MB benötigt! Die Größe des Speicherbedarfs steigt quadratisch mit der Bildgröße. Auf einem normalen Amiga kann so eine Transformation bei größeren Bildern einige Stunden dauern. Mit einem 68030er (25MHz) benötigt die Transformation für ein Bild der oben angegebenen Größe etwa 15 Minuten. Trotz des hohen Rechenaufwands (und der damit verbundenen Hardware-Voraussetzungen) können diese Filter sinnvoll eingesetzt werden, da sie viel mehr Möglichkeiten als die Matrixfilter bieten. Damit auch Benutzer eines Amigas mit weniger Speicher (<4MB) Bilder mit durchschnittlicher Amiga-Auflösung transformieren können, wurde in ImageMan eine virtuelle Speicherverwaltung, das sogenannte FileSwapping, implementiert. Ist nicht genügend RAM-Speicher vorhanden, dann wird auf dem logischen Laufwerk ImageMan: eine temporäre Datei mit dem Namen ImageMan.tmp angelegt. Mit einem ASSIGN-Befehl sollten Sie dem logischen Laufwerk ImageMan: einen sinnvollen Pfad zuweisen. Geschieht dies nicht, dann bekommen Sie vom Amiga-Betriebssystem die Anforderung "Please insert Volume ImageMan in any drive". Wenn Sie in diesem Requester mit Cancel aussteigen, dann versucht ImageMan die temporäre Datei im T: Verzeichnis anzulegen. Dieses ist aber üblicherweise in der RAM: Disk, was schnell zu einem überfüllten Speicher führt. Schließlich wollte ImageMan ja die temporäre Datei aus Speichermangel öffnen. Vergessen Sie also den ASSIGN-Befehl nicht (Siehe auch Abschnitt Programmparameter sichern). Für den verwendeten Algorithmus (Fast Fourier Transform) müßten die Höhe und die Breite des Bildes in Pixeln 2er-Potenzen sein. ImageMan ermöglicht es Ihnen jedoch, Bilder beliebiger Größe zu transformieren. Trotzdem werden Bilder besonders schnell transformiert, die dem genannten Kriterium entsprechen. Ungünstig sind Bildgrößen, die gerade ein Pixel größer als eine 2er-Potenz sind. Damit wird der Rechenaufwand und der Speicherbedarf unnötig erhöht. Günstig sind also Bildformate, deren Höhe bzw. Breite in Pixeln folgende Werte besitzen: (2, 4, 8, 16, 32,) 64, 128, 256, 512, 1024, 2048 Die eingeklammerten Werte mögen etwas ungebräuchlich aussehen, können bei Brushes aber durchaus Bedeutung besitzen. Die Bilder müssen nicht (wie bei anderen Programmen) quadratisch sein. ImageMan verarbeitet auch rechteckige Bilder richtig. Da die Bearbeitung eines Bildes mit einem Fourier-Filter lange dauern kann, meldet sich ImageMan per Sprachausgabe, sobald die Berechnung abgeschlossen worden ist: "This is ImageMan. I am ready!". Falls das Speak-Device nicht vorhanden ist (ab WB 2.1 ist dies der Fall) wird ein Display-Beep verwendet. Fourier Bandpass ---------------- Dies ist der einfachste (und deshalb leistungsschwächste) Filter aus der Fourier-Familie. Mit diesem können Sie die Frequenzanteile in einem bestimmten Bereich löschen. Wenn Sie die höheren Frequenzanteile löschen (Bereich von 70-100), dann glätten Sie das Bild. Löschen Sie hingegenen die niedrigeren Frequenzen (Bereich 0-10), dann bleiben hauptsächlich die Kanten übrig (ähnlich Gradient). Eine Schärfung des Bildes ist mit diesem Filter nicht möglich! Wegen der kantigen Filterfunktion, die bei diesem Filter verwendet wird, kann es sehr leicht zu einem sogenannten Ringing-Effect kommen. Dieser wirkt sich so aus, daß dem Bild nach der Filterung ein Ringmuster überlagert ist. Dies ist keine Rechenungenauigkeit, sondern ein mathematischer Effekt (siehe Bildverarbeitungsliteratur). Meist ist diese Tatsache eher störend, kann aber vielleicht auch absichtlich verwendet werden. Sollte der Effekt zu störend sein, dann benutzen Sie das Fourier Amplify Soft Filter (siehe weiter unten). Parameter: Mit den beiden Schiebern Cut low und Cut hi können Sie die untere bzw. die obere Grenzfrequenz des Bereichs einstellen, der vom Filter gelöscht werden soll. Die Werte sind Prozentangaben bezogen auf das Frequenzmaximum. 0 entspricht der niedrigsten Frequenz, 100 der maximal möglichen. Die Frequenz für Cut low sollte kleiner als die Frequenz für Cut hi sein, damit der Filter sinnvoll arbeiten kann. Cut low Cut hi typisches Glätten 30 70 Gradient 0 10 Fourier Amplify --------------- Mit diesem Filter können Sie schon etwas mehr anfangen. Allerdings gilt auch hier, daß nach der Filterung dem Bild ein Ringmuster überlagert sein kann (siehe Fourier Bandpass). Zusätzlich zu den beiden Reglern für die Grenzfrequenzen ist noch ein Feld für den Verstärkungsfaktor vorhanden. Der eingegebene Zahlenwert wird durch 10 dividiert (mit 0.1 multipliziert). Wenn Sie also 10 eingeben, so ist der Verstärkungsfaktor 1.0 . Mit dem Verstärkungsfaktor werden die Frequenzanteile zwischen den beiden Grenzfrequenzen multipliziert. Somit können diese entweder abgeschwächt (<10) oder verstärkt (>10) werden. Einige typische Zahlenwerte werden unten angegeben. Parameter: Die beiden Schieber Cut low und Cut hi besitzen die gleiche Bedeutung wie beim Fourier Bandpass Filter. Im Feld Ampl x.1 können Sie den Verstärkungsfaktor bestimmen. Der Zahlenwert wird durch 10 dividiert (mit 0.1 multipliziert). Cut low Cut hi Ampl x .1 Normales Glätten 30 70 (... 80) 0 - 5 Schärfen 30 70 (... 80) 20 - 30 Starkes Glätten 10 80 0 Fourier Amplify (soft) ---------------------- Dieser Filter ist dem normalen Fourier Amplify Filter sehr ähnlich. Der größte Unterschied ist, daß bei diesem Filter dem Bild keine Ringmuster überlagert werden. Beim Fourier Amplify (soft) Filter wird eine spezielle glatte Filterfunktion verwendet, die von ESP speziell für diesen Zweck entwickelt wurde. Da die Fouriertransformierte dieser Funktion keine hohen Frequenzanteile besitzt, tritt der Ringing-Effect nicht auf. Die Flankensteilheit der Funktion kann eingestellt werden, was zu verschieden starken Ergebnissen führt. Im folgenden Bild soll dieser Unterschied zwischen den Funktionen mit verschiedener Flankensteigung (Order - Filterordnung) erläutert werden: ----- -------- -- ----- --- ----- | | \ / \ / | | \ / | | | | \ / | | | | \ / \ / --------- ---- ----- kantige Funktion sanfte Funktion steilere Funktion (z.B. Fourier Amplify) (Order klein, z.B. 1) (Order größer, z.B.3) Je steiler die Funktion ist, desto stärker wird der Ring-Effekt. Bei üblichen Werten (1 bis 4) sieht man aber keine störende Beeinflussung des Ergebnisses. Parameter: Die Parameter Cut low, Cut hi und Ampl x.1 haben die gleiche Bedeutung wie beim Fourier Amplify Filter. Im Feld Order kann ein ganzzahliger Wert eingegeben werden, der die Flankensteilheit der Filterfunktion bestimmt (Siehe Bilder oben). Der kleinste Wert ist dabei 1, der größte 4. Je größer die Ordnung, desto steiler wird die Kurve. Übliche Werte sind 2 und 3. Cut low Cut hi Ampl x .1 Order Normales Glätten 30 70 0 - 5 2 od. 3 Schärfen 30 70 20 - 30 2 od. 3 Starkes Glätten 10 80 0 3 Traumbildeffekt 1 10 0 2 od. 3 Programmparameter sichern ========================= ImageMan erlaubt es Ihnen, oft benutzte Filtereinstellungen als Default-Wert abzuspeichern. Wenn Sie in den Filterdialogfenstern mit der Schaltfläche Set Default Einstellungen fixiert haben, dann können Sie diese mit dem Befehl Save Settings aus dem Menü Settings abspeichern. Beim nächsten Start von ImageMan stehen nun diese Einstellungen wieder zur Verfügung und werden beim Aufrufen eines Filters sofort angezeigt. Wollen Sie aber die Default-Einstellungen nur während eines Programmlaufs benutzen, dann brauchen Sie diese nur einfach nicht abspeichern. Die Default-Einstellungen gehen dann nach Beendigung des Programms verloren und werden durch die abgespeicherten ersetzt. Für die Fourier-Filter ist es notwendig, einen ASSIGN für das logische Laufwerk ImageMan: anzugeben. Auf diesem logischen Laufwerk wird dann die temporäre Datei ImageMan.tmp angelegt, die für die virtuelle Speicherverwaltung verwendet wird. Sie können den ASSIGN-Befehl in Ihre User-Startup Datei einbauen. Legen Sie den Pfad in ein geeignetes Harddisk-Verzeichnis (z.B. SYS:T). ImageMan löscht zwar die temporäre Datei nach Beendigung der Bearbeitung wieder, aber das könnte durch einen Systemabsturz (der natürlich nicht durch ImageMan verschuldet worden sein kann...) verhindert werden. In einem solchen Fall sollten Sie die temporäre Datei händisch löschen. Falls Sie ein Programm zur virtuellen Speicherverwaltung verwenden (nur auf Computern mit MMU möglich), so kann ImageMan auch diesen Speicher verwenden. Bei Fourier-Filtern ist aber die Benutzung eines virtuellen Speichers, der nicht von ImageMan selbst verwaltet wird, sehr ineffizient. Deshalb können Sie im Menü Settings mit dem Befehl Virtual Memory? einstellen, ob bei den Fourier-Filtern die in ImageMan eingebaute virtuelle Speicherverwaltung (die auch ohne MMU funktioniert) verwendet werden soll. Dies ist SEHR empfehlenswert, da sonst die Rechenzeit und die Harddisk-Zugriffe stark ansteigen. Alle anderen Filter betrifft diese Einstellung nicht. Ist der Menüpunkt Virtual Memory? aktiviert, so wird die Speicherverwaltung von ImageMan verwendet, auch wenn ein anderes Speicherverwaltungsprogramm vorhanden ist. Ist der Menüpunkt nicht aktiviert, dann wird der virtuelle Speicher des Speicherverwaltungsprogramms verwendet. Wird kein Speicherverwaltungsprogramm verwendet, dann ist diese Einstellung ohne Funktion. Es wird dann immer die eingebaute Speicherverwaltung verwendet. ABSCHLIEßENDE BEMERKUNGEN ========================= Die Idee für das vorliegende Programm entstand nach Absolvierung einer Vorlesung an der TU Wien (ich, Gerald Ritz, studiere dort Technische Physik) über computerunterstützte Abbildungsverfahren im Sommersemester 1991. Da es zu diesem Zeitpunkt noch kein vernünftiges Programm für die Filterung von Bildern gab, entschloß ich mich, die vorgestellten Verfahren für den Amiga zu implementieren. Ohne die Mithilfe meines Bruders, der die Benutzeroberfläche programmiert hat, hätte ImageMan wahrscheinlich noch immer ein komfortables CLI-Interface. Inzwischen gibt es bereits andere Programme, die ähnliche Funktionen wie ImageMan bieten. ImageMan besitzt aber den Vorteil, daß er möglichst sparsam mit dem verfügbaren Speicher umgeht (sowohl Chip- als auch Fast-Mem) und sich völlig in die neue Betriebssystem-Umgebung einfügt (z.B. Unterstützung des Clipboards, Application Window, ASL-Requester, etc.).Weiterere Vorteile von ImageMan sind die Undo-Funktion, die hervorragende Show-Funktion (von Gernot). In Zukunft sind einige Erweiterungen von ImageMan geplant. Wie schnell diese realisiert werden, wird auch vom Echo auf diese Version des Programms abhängen. Wir sind für jegliche Anregungen und Kritik sehr dankbar. Ein Programm ist leider nie fehlerfrei (there´s always another bug!). Falls Ihnen Fehler auffallen, sind wir für eine Beschreibung des Fehlers dankbar und werden versuchen, diesen zu beheben. ImageMan ist ein Public-Domain-Programm. Sie können (und sollen!) das Programm daher weiterkopieren. Das Programm, die Anleitung und das Copyright dürfen allerdings nicht verändert werden. Viel Erfolg bei der Arbeit mit ImageMan wünschen Ihnen Gernot Ritz & Gerald Ritz Stelzerstraße 43 A - 4020 LINZ